Java类描述
重载和重写
重载:同一个类,方法名相同,其它部分不同
重写:父子类,方法名相同,(一同两小一大)相同参数列表,返回值、异常类型,修饰符
接口和抽象类
| 特性 | 抽象类 | 接口 |
|---|---|---|
| 继承 | 只能继承一个抽象类 | 可以实现多个接口 |
| 方法实现 | 可以有已实现的方法和抽象方法 | 方法默认是抽象的,可以有默认方法和静态方法 |
| 成员变量 | 可以有实例变量和静态变量 | 只能有常量(public static final) |
| 构造方法 | 可以有构造方法 | 不能有构造方法 |
| 访问修饰符 | 可以有多种访问修饰符 | 方法默认是 public (Java 9 引入 private) |
| 使用场景 | 适合共享代码,提供基础实现 | 适合表示行为规范,支持多实现 |
Java 8 接口新特性
CustomInterface.java
interface CustomInterface {
void abstractMethod(); //抽象方法不能是私有的
static void staticMethod() {
privateStaticMethod(); //public静态方法可以调用private静态方法
System.out.println("静态方法被调用");
}
default void defaultMethod() {
privateMethod(); //可以调用接口中的私有方法
privateStaticMethod(); //可以调用接口中的私有静态方法
System.out.println("普通方法被调用");
}
// this only can use java 9 or later version
private void privateMethod() {
System.out.println("private私有方法被调用");
}
// this only can use java 9 or later version
private static void privateStaticMethod() {
System.out.println("private私有静态方法被调用");
}
}
协议
本作品代码部分采用 Apache 2.0协议 进行许可。遵循许可的前提下,你可以自由地对代码进行修改,再发布,可以将代码用作商业用途。但要求你:
- 署名:在原有代码和衍生代码中,保留原作者署名及代码来源信息。
- 保留许可证:在原有代码和衍生代码中,保留Apache 2.0协议文件。
- 署名:应在使用本文档的全部或部分内容时候,注明原作者及来源信息。
- 非商业性使用:不得用于商业出版或其他任何带有商业性质的行为。如需商业使用,请联系作者。
- 相同方式共享的条件:在本文档基础上演绎、修改的作品,应当继续以知识共享署名 4.0国际许可协议进行许可。